home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / role / roleplay.0-s / roleplay / RolePlaying-1.0 / scripts / MONSTFunctions < prev    next >
Text File  |  1995-07-09  |  7KB  |  174 lines

  1. # Module: MONSTFunctions
  2. # Tcl version: 7.3 (Tcl/Tk/XF)
  3. # Tk version: 3.6
  4. # XF version: $__lastrelease$
  5. #
  6.  
  7. # module contents
  8. global moduleList
  9. global autoLoadList
  10. set moduleList(MONSTFunctions) { UpdateMonster ResetMonsterForm}
  11. set autoLoadList(MONSTFunctions) {1}
  12.  
  13. # procedures to show toplevel windows
  14.  
  15.  
  16. # User defined procedures
  17.  
  18.  
  19. # Procedure: UpdateMonster
  20. proc UpdateMonster {} {
  21.   global CurrentMonster
  22.   if {$CurrentMonster(handle) != {}} {
  23.     global MonsterHitType
  24.     $CurrentMonster(handle) alignment [[SN MonsterAlignment] get]
  25.     $CurrentMonster(handle) armorclass [[SN MonsterArmorClass] get]
  26.     set temp [[SN MonsterDamPerAttack] get]
  27.     if {[scan $temp "%d-%d" l h] == 2} {
  28.       $CurrentMonster(handle) damageperattack $l $h
  29.     } else {
  30.       $CurrentMonster(handle) damageperattack $temp
  31.     }
  32.     $CurrentMonster(handle) frequency [[SN MonsterFrequency] get]
  33.     case $MonsterHitType in {
  34.       {HitDice} {
  35.     $CurrentMonster(handle) hittype Dice
  36.     $CurrentMonster(handle) numhitdie [[SN MonsterHitDiceND] get]
  37.     $CurrentMonster(handle) hitdie [[SN MonsterHitDiceNS] get]
  38.       }
  39.       {HitPoints} {
  40.     $CurrentMonster(handle) hittype Points
  41.     $CurrentMonster(handle) hitpoints [[SN MonsterHitPoints] get]
  42.       }
  43.     }
  44.     $CurrentMonster(handle) intelligence [[SN MonsterIntelligence] get]
  45.     $CurrentMonster(handle) magicresistance [[SN MonsterMagicResistance] get]
  46.     set move [[SN MonsterMove] get]
  47.     if {[scan $move {%d"/%d"} m f] == 2} {
  48.       $CurrentMonster(handle) move $m
  49.       $CurrentMonster(handle) fly $f
  50.     } elseif {[scan $move {%d"//%d"} m s] == 2} {
  51.       $CurrentMonster(handle) move $m
  52.       $CurrentMonster(handle) swim $s
  53.     } elseif {[scan $move {"%d"(%d")} m b] == 2} {
  54.       $CurrentMonster(handle) move $m
  55.       $CurrentMonster(handle) burrow $b
  56.     } elseif {[scan $move {%d"*%d"} m w] == 2} {
  57.       $CurrentMonster(handle) move $m
  58.       $CurrentMonster(handle) web  $w
  59.     } elseif {[scan $move {%d"} m] == 1} {
  60.       $CurrentMonster(handle) move $m
  61.     }
  62.     $CurrentMonster(handle) name [[SN MonsterName] get]
  63.     set temp [[SN MonsterNoAppearing] get]
  64.     if {[scan $temp "%d-%d" l h] == 2} {
  65.       $CurrentMonster(handle) numappearing $l $h
  66.     } else {
  67.       $CurrentMonster(handle) numappearing $temp
  68.     }
  69.     $CurrentMonster(handle) numattacks [[SN MonsterNoAttacks] get]
  70.     $CurrentMonster(handle) percentlair [[SN MonsterPercentInLair] get]
  71.     $CurrentMonster(handle) psionics [[SN MonsterPsionicAbility] get]
  72.     scan [[SN MonsterSize] get] "%f'" size
  73.     $CurrentMonster(handle) size $size
  74.     $CurrentMonster(handle) specialattacks [[SN MonsterSpecialAttacks] get]
  75.     $CurrentMonster(handle) specialdefences [[SN MonsterSpecialDefences] get]
  76.     $CurrentMonster(handle) treasuretype [[SN MonsterTreasureType] get]
  77.     $CurrentMonster(handle) comments [[SN MonsterComments] get 1.0 end]
  78.     set CurrentMonster(isdirty) 1
  79.   }
  80. }
  81.  
  82.  
  83. # Procedure: ResetMonsterForm
  84. proc ResetMonsterForm {} {
  85.   global CurrentMonster
  86.   global MonsterHitType
  87.   [SN MonsterAlignment] delete 0 end
  88.   [SN MonsterArmorClass] delete 0 end
  89.   [SN MonsterDamPerAttack] delete 0 end
  90.   [SN MonsterFrequency] delete 0 end
  91.   [SN MonsterHitDiceND] delete 0 end
  92.   [SN MonsterHitDiceNS] delete 0 end
  93.   [SN MonsterHitPoints] delete 0 end
  94.   [SN MonsterIntelligence] delete 0 end
  95.   [SN MonsterMagicResistance] delete 0 end
  96.   [SN MonsterMove] delete 0 end
  97.   [SN MonsterName] delete 0 end
  98.   [SN MonsterNoAppearing] delete 0 end
  99.   [SN MonsterNoAttacks] delete 0 end
  100.   [SN MonsterPercentInLair] delete 0 end
  101.   [SN MonsterPsionicAbility] delete 0 end
  102.   [SN MonsterSize] delete 0 end
  103.   [SN MonsterSpecialAttacks] delete 0 end
  104.   [SN MonsterSpecialDefences] delete 0 end
  105.   [SN MonsterTreasureType] delete 0 end
  106.   [SN MonsterComments] delete 1.0 end
  107.   set {MonsterHitType} {HitDice}
  108.   [SN MonsterHitDiceR] select
  109.   if {$CurrentMonster(handle) != {}} {
  110.     [SN MonsterAlignment] insert end [$CurrentMonster(handle) alignment]
  111.     [SN MonsterArmorClass] insert end [$CurrentMonster(handle) armorclass]
  112.     set temp [$CurrentMonster(handle) damageperattack]
  113.     if {[lindex $temp 0] == [lindex $temp 1]} {
  114.       [SN MonsterDamPerAttack] insert end [lindex $temp 0]
  115.     } else {
  116.       [SN MonsterDamPerAttack] insert end [format "%d-%d" [lindex $temp 0] [lindex $temp 1]]
  117.     }
  118.     [SN MonsterFrequency] insert end [$CurrentMonster(handle) frequency]
  119.     [SN MonsterHitDiceND] insert end [$CurrentMonster(handle) numhitdie]
  120.     [SN MonsterHitDiceNS] insert end [$CurrentMonster(handle) hitdie]
  121.     [SN MonsterHitPoints] insert end [$CurrentMonster(handle) hitpoints]
  122.     [SN MonsterIntelligence] insert end [$CurrentMonster(handle) intelligence] 
  123.     [SN MonsterMagicResistance] insert end [$CurrentMonster(handle) magicresistance]
  124.     [SN MonsterMove] insert end "[$CurrentMonster(handle) move]\""
  125.     set fly [$CurrentMonster(handle) fly]
  126.     if {$fly != 0} {[SN MonsterMove] insert end "/$fly\""}
  127.     set swim [$CurrentMonster(handle) swim]
  128.     if {$swim != 0} {[SN MonsterMove] insert end "//$swim\""}
  129.     set burrow [$CurrentMonster(handle) burrow]
  130.     if {$burrow != 0} {[SN MonsterMove] insert end "($burrow\")"}
  131.     set web [$CurrentMonster(handle) web]
  132.     if {$web != 0} {[SN MonsterMove] insert end "*$web\""}
  133.     [SN MonsterName] insert end [$CurrentMonster(handle) name]
  134.     set temp [$CurrentMonster(handle) numappearing]
  135.     if {[lindex $temp 0] == [lindex $temp 1]} {
  136.       [SN MonsterNoAppearing] insert end [lindex $temp 0]
  137.     } else {
  138.       [SN MonsterNoAppearing] insert end [format "%d-%d" [lindex $temp 0] [lindex $temp 1]]
  139.     }
  140.     [SN MonsterNoAttacks] insert end [$CurrentMonster(handle) numattacks]
  141.     [SN MonsterPercentInLair] insert end [$CurrentMonster(handle) percentlair]
  142.     [SN MonsterPsionicAbility] insert end [$CurrentMonster(handle) psionics]
  143.     [SN MonsterSize] insert end "[$CurrentMonster(handle) size]'"
  144.     [SN MonsterSpecialAttacks] insert end [$CurrentMonster(handle) specialattacks]
  145.     [SN MonsterSpecialDefences] insert end [$CurrentMonster(handle) specialdefences]
  146.     [SN MonsterTreasureType] insert end [$CurrentMonster(handle) treasuretype]
  147.     [SN MonsterComments] insert end [$CurrentMonster(handle) comments]
  148.     case [$CurrentMonster(handle) hittype] in {
  149.       {Dice} {
  150.           set {MonsterHitType} {HitDice}
  151.     [SN MonsterHitDiceR] select
  152.       }
  153.       {Points} {
  154.     set {MonsterHitType} {HitPoints}
  155.     [SN MonsterHitPointsR] select
  156.       }
  157.       {} {
  158.     set {MonsterHitType} {HitDice}
  159.     [SN MonsterHitDiceR] select
  160.       }
  161.     }
  162.   } else {
  163.     [SN MonsterHitDiceND] insert end {1}
  164.     [SN MonsterHitDiceNS] insert end {8}
  165.   }
  166. }
  167.  
  168.  
  169. # Internal procedures
  170.  
  171. # eof
  172. #
  173.  
  174.